package com.redepronik.negosys.seguridad.entity;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * The persistent class for the gruposeguridad database table.
 * 
 */
@Entity
@Table(schema = "seguridad", name = "gruposeguridad")
@NamedQuery(name = "Gruposeguridad.findAll", query = "SELECT g FROM Gruposeguridad g")
public class Gruposeguridad implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(allocationSize = 1, name = "GRUPOSEGURIDAD_GRUPOSEGURIDADID_GENERATOR", sequenceName = "SEGURIDAD.GRUPOSEGURIDAD_GRUPOSEGURIDADID_SEQ")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "GRUPOSEGURIDAD_GRUPOSEGURIDADID_GENERATOR")
	@Column(unique = true, nullable = false)
	private Integer gruposeguridadid;

	@Column(nullable = false, length = 50)
	private String nombre;

	// bi-directional many-to-one association to Grupousuario
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "gruposeguridad")
	private List<Grupousuario> grupousuarios;

	// bi-directional many-to-one association to Rolgrupo
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "gruposeguridad")
	private List<Rolgrupo> rolgrupos;

	public Gruposeguridad() {
	}

	public Grupousuario addGrupousuario(Grupousuario grupousuario) {
		getGrupousuarios().add(grupousuario);
		grupousuario.setGruposeguridad(this);

		return grupousuario;
	}

	public Rolgrupo addRolgrupo(Rolgrupo rolgrupo) {
		getRolgrupos().add(rolgrupo);
		rolgrupo.setGruposeguridad(this);

		return rolgrupo;
	}

	public Integer getGruposeguridadid() {
		return this.gruposeguridadid;
	}

	public List<Grupousuario> getGrupousuarios() {
		return this.grupousuarios;
	}

	public String getNombre() {
		return this.nombre;
	}

	public List<Rolgrupo> getRolgrupos() {
		return this.rolgrupos;
	}

	public Grupousuario removeGrupousuario(Grupousuario grupousuario) {
		getGrupousuarios().remove(grupousuario);
		grupousuario.setGruposeguridad(null);

		return grupousuario;
	}

	public Rolgrupo removeRolgrupo(Rolgrupo rolgrupo) {
		getRolgrupos().remove(rolgrupo);
		rolgrupo.setGruposeguridad(null);

		return rolgrupo;
	}

	public void setGruposeguridadid(Integer gruposeguridadid) {
		this.gruposeguridadid = gruposeguridadid;
	}

	public void setGrupousuarios(List<Grupousuario> grupousuarios) {
		this.grupousuarios = grupousuarios;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void setRolgrupos(List<Rolgrupo> rolgrupos) {
		this.rolgrupos = rolgrupos;
	}

}